головне меню список тем тестування презентації історія створення

 

7.6 Засоби інтерфейсу користувача

Для зв'язку комп'ютера з користувачем (тобто організації інтерфейсу користувача) застосовуються відеоадаптер, що управляє відеомонітором, клавіатура і графічний маніпулятор типу «миша» (mouse), touch pad або stick pointer.
Відеоадаптер є пристроєм сполучення комп'ютера з відеомонітором і частіше всього виконується у вигляді спеціальної плати розширення, що вставляється в системну шину або локальну шину комп'ютера. При цьому зображення, формоване на екрані монітора, зберігається у відеопам'яті, що входить до складу відеоадаптера.
Відеопам'ять є оперативною пам'яттю, яка, хоча і не є, по суті, системною пам'яттю, розглядається процесором як частина системної пам'яті з адресами A0000 - BFFFF (всього 128 Кбайт). Тобто з цією пам'яттю процесор може взаємодіяти як з системною оперативною пам'яттю: писати інформацію в будь-яку комірку і читати інформацію з неї. Але одночасно ця ж пам'ять постійно сканується (тобто послідовно опитується) самим відеоадаптером для формування растрового зображення на екрані монітора. Тобто доступ до цієї пам'яті мають як процесор, так і відеоадаптер.
Швидкість обміну з відеопам'яттю - досить важливий параметр, він впливає на зручність роботи з комп'ютером і часто визначає коло задач, які можуть ним виконуватися. Тому для відеопам'яті використовують самі швидкодійні мікросхеми. Крім того, застосовують спеціальні архітектурні рішення, що дозволяють полегшити розділення доступу до пам'яті з боку процесора і відеоадаптера. Наприклад, у разі двохпортової пам'яті VRAM - Video RAM, до кожної її комірки одночасно можуть дістати доступ (із записом або читанням) як процесор, так і сам адаптер. Відзначимо, що в старих відеоадаптерах для зниження спотворень зображення на екрані під час перезапису вмісту пам'яті використовувалося звернення до пам'яті з боку центрального процесора тільки в періоди кадрового і рядкового гасячого імпульсів (коли електронний промінь монітора гаситься при переході до наступного рядка екрану або до наступного кадру). Всі сучасні відеоадаптери можуть працювати в двох основних режимах: текстовому (символьному, алфавітно-цифровому) і графічному. В текстовому режимі відеопам'ять має початкову адресу B8000, а в графічному - А0000.
В текстовому режимі на екран можна виводити тільки окремі символи, причому тільки в певні позиції на екрані. При цьому у відеопам'яті зберігаються виключно коди символів (8-розрядні) і коди атрибутів символів, що виводяться (8-розрядні). Тобто кожній символьній позиції на екрані відповідає два байти пам'яті. До атрибутів символу відносяться яскравість, колір, мерехтіння як символу, так і його фону. Для перетворення вмісту пам'яті у відеосигнал точкового зображення застосовується так званий знакогенератор. Він може бути у вигляді ПЗП, в якому записано порядкове растрове зображення кожного символу. При цьому чим більше точок растру відводиться під зображення символу, тим він якісний, але тим більше місця займає на екрані. Переваги текстового режиму - це простота управління екраном і малий об'єм необхідної пам'яті. Прикладом його використовування є програма початкового запуску BIOS.
В графічному режимі у відеопам'яті зберігається опис кожної крапки на екрані монітора. Кожній крапці відповідає декілька біт пам'яті (використовується ряд: 1, 4, 8, 16, 24 біт на одну крапку). При цьому, відповідно, кожна крапка може мати 2n станів, де n - кількість бітів, а під станом розуміється колір і яскравість крапки. При одному біті крапка може бути білою або чорною, при 4 бітах вона може мати 16 кольорів, при 8 бітах - 256, при 16 бітах - 65 536, а при 24 бітах - 16 777 216 кольорів і відтінків. Тут же відзначимо, що загальна кількість крапок на екрані в сучасних комп'ютерах вибирається з ряду 640 (по горизонталі) x 480 (по вертикалі), 800x600, 1024x768, 1280x1024, 1600x1200. Звідси неважко розрахувати об'єм відеопам'яті, що вимагається для повного екрану. Так, наприклад, при роздільній здатності 800x600 точок  і при 256 кольорах (8 біт або 1 байт) потрібен 800x600x1 = 480 000 байт пам'яті. При роздільній здатності 1024x768 і 65 536 кольорів (2 байти) потрібні 1024x768x2 = 1 572 864 байти. Проте об'єм відеопам'яті вибирається з наступного ряду: 256 Кбайт, 512 Кбайт, 1 Мбайт, 2 Мбайт, 4 Мбайт, 8 Мбайт, 16 Мбайт. В табл. 7.2  приведені необхідні об'єми відеопам'яті для різних режимів роботи відеоадаптера.

 Таблиця 7.2. Необхідні об'єми відеопам'яті.                                            

Роздільна здатність та кількість кольорів

Кількість біт на точку

об»єм відеопам»яті

800 x 600, 16 цветов

4

256 Кбайт

800 x 600, 256 цветов

8

512 Кбайт

800 x 600, 64 К цветов

16

1 Мбайт

800 x 600, 16 М цветов

24

2 Мбайт

1024 x 768, 16 цветов

4

512 Кбайт

1024 x 768, 256 цветов

8

1 Мбайт

1024 x 768, 64 К цветов

16

2 Мбайт

1024 x 768, 16 М цветов

24

4 Мбайт

1280 x 1024, 16 цветов

4

1 Мбайт

1280 x 1024, 256 цветов

8

2 Мбайт

1280 x 1024, 64 К цветов

16

4 Мбайт

1280 x 1024, 16 М цветов

24

4 Мбайт

Зрозуміло, що для повного оновлення такого великого об'єму пам'яті потрібен значний час навіть при швидкій відеопам'яті і швидкому процесорі. В ролі обмежуючого чинника виступатиме темп обміну по системній шині. Тому саме відеоадаптери першими стали розміщувати на локальній шині VLB або на шині PCI, а пізніше - на виділеній шині AGP. Інший напрям прискорення формування зображення - вдосконалення принципів обміну з комп'ютером. Перші відеоадаптери були розраховані на те, щоб всі маніпуляції із зображенням проводив сам центральний процесор комп'ютера. Принципово інший підхід - використовування графічного співпроцесора. При цьому центральний процесор тільки дає команди на формування зображення, а співпроцесор, розташований на платі відеоадаптера, сам вже виконує всю обробку, розрахунки і формування об'єктів на екрані, що дає велике збільшення швидкості формування зображень. Проміжний варіант - це вживання так званих графічних прискорювачів, тобто вузлів, що виконують самі трудомісткі операції по формуванню зображень, але центральний процесор при цьому не звільняється повністю від управління відеопам'яттю.
В даний час найбільш поширено два стандарти дисплеїв:
SVGA (Super VGA), який підтримує максимальну роздільну здатність 1024х768 точок (стандартними вважається 800х600 точок) в 16- і 256-кольорових режимах при максимальному об'ємі відеопам'яті 4 Мбайт. Крім того, передбачено використовування двохпортової пам'яті і 16-розрядної шини даних і ряд інших новин.
XGA і XGA-2 (eXtended Graphics Array) - ці стандарти запропоновані в 1990 і 1992 г.г. компанією IBM. Основним режимом вважається роздільну здатність 1024х768 точок при 256 кольорах (XGA) або при 64 К кольорах (XGA-2). Відмітна особливість - використовування швидкодійного графічного співпроцесора і наявність можливості управляти системною шиною, що дозволяє виконувати відеооперації без участі центрального процесора. Так само, як і в SVGA, використовується двохпортова оперативна пам'ять, причому вона розташовується в адресному просторі комп'ютера в останніх адресах повної 4-гігабайтної області, на які звичайно ніхто не претендує. В XGA-2, на відміну від XGA, використовується тільки прогресивна (суцільна, non-interlaced, NI), а не чересрядкова (interlaced) розгортка зображення на екрані монітора, що забезпечує малі мерехтіння. Обидва стандарти підтримують повну сумісність з SVGA.
UVGA (Ultra VGA) – основною роздільною здатністтю вважається 1280х1024 точок.
UXGA – роздільна здатність 1600х1200 точок, XVGA - 1280х768 крапок.
Для підключення до комп'ютера клавіатури застосовується спеціальний інтерфейс з послідовною передачею інформації. Це дозволяє використовувати для приєднання клавіатури всього два двонаправлені дроти (лінія даних і тактовий сигнал). Обмін інформацією йде 11-бітовими посилками, що включають 8 розрядів даних і службову інформацію (тобто стартовий біт, біт парності і стоповий біт). В комп'ютері IBM PC XT для підключення клавіатури використовувалася мікросхема PPI (Programmable Peripheral Interface) i8255, а в PC AT - мікросхема UPI (Universal Peripheral Interface) i8042.
Принцип роботи клавіатури досить простий. Він зводиться до постійного сканування (послідовному опиті) всіх клавіш (звичайно застосовується 101-клавішна клавіатура) і до пересилки в комп'ютер номера натисненої клавіші (8-бітовий код), причому як при її натисненні, так і при відпуску. При відпуску клавіші її код передує посилкою коду F0. Якщо клавіша утримується тривалий час, то через заданий інтервал посилки її код повторюються із заданою частотою. Якщо одночасно натиснено  більше однієї клавіші, то повторюється посилка коду тільки останньої з натискуючих клавіш.
При отриманні коду контролером 8042 він формує сигнал запиту апаратного переривання IRQ1. Це приводить до виклику програми обробки натиснення клавіші, що знаходиться в BIOS. Службові клавіші (Shift, Сtrl, Alt) і перемикаючі клавіші (Caps Lock, Insert, Num Lock) обробляються спеціальним чином, а у разі натиснення символьних клавіш їх коди перетворяться в коди відповідних символів і поміщаються в буфер клавіатури. Буфер клавіатури - це 16-байта область пам'яті, організована за принципом FIFO «перший ввійшов - перший вийшов», в якій зберігаються коди натискуючих клавіш до тих пір, поки їх зможе обробити програма.
Сучасні клавіатури персональних комп'ютерів мають 101 або 102 клавіші. Є «розширені» моделі з кількістю клавіш до 122 і «усічені» моделі з кількістю клавіш близько 90, вживані в портативних комп'ютерах типу ноутбук.
Починаючи з комп'ютера  PC AT, клавіатура може не тільки передавати інформацію, але і приймати її. Ця можливість використовується для пересилки в клавіатуру команд, що встановлюють режими її роботи (наприклад, швидкість повтору введення символів при утримуваній клавіші або тимчасова затримка перед повтором).
Комп'ютерна миша, що служить для управління курсором, підключається до комп'ютера через стандартний послідовний інтерфейс RS-232C (про нього докладніше - в окремому розділі). Для передачі комп'ютеру інформації про переміщення миші використовується 3-байтовий формат. Два байти при цьому містять інформацію про переміщення миші по вертикалі і по горизонталі, а один байт - про стан кнопок миші. Передача ведеться тільки в одному напрямі (від миші до комп'ютера) із швидкістю 1200 бит/с. Переміщення вимірюється в спеціальних одиницях cpi (counts реr inch), рівних приблизно 0,005 дюйми (0,13 мм).
Варто відзначити, що миша, як правило, живиться від системного блоку комп'ютера, для чого задіяні невживані сигнальні лінії роз'єму інтерфейсу RS-232C, оскільки власне напруги живлення на роз'єм не виведені. Саме тому миша приєднується до комп'ютера чотирьохдротяним кабелем, хоча для інформації вистачило б і двохдротяного. Докладніше про інтерфейс RS-232C в наступному розділі. Зараз використовується також підключення миші через інтерфейс PS/2, схожий на RS-232C, але не сумісний з ним ні електрично, ні конструктивно.
Альтернатива миші - це маніпулятори Stick Pointer і Touch Pad, які не мають механічних частин, що рухаються. Спочатку вони застосовувалися тільки в ноутбуках, але потім їх стали розміщувати і на клавіатурах звичайних настільних комп'ютерів. Stick Pointer є невеликим важелем, розташованим між клавішами. Тиск на нього в різні боки викликає переміщення курсора на екрані. При цьому сам важіль залишається нерухомим. Touch Pad є невеликим майданчиком, розташованим поряд з клавішами, по якій необхідно рухати пальцем або ручкою, причому рух пальця викликає таке ж переміщення курсора на екрані. З погляду комп'ютера ці маніпулятори нічим не відрізняються від миші, вони використовують той же інтерфейс.
Ігровий адаптер джойстик підключається до комп'ютера через власний спеціальний інтерфейс. Для зв'язку з джойстиком не вимагається ніяких переривань. Використовується тільки одна адреса вводу/виводу.

 

 

попередня тема наступна тема